package com.darwin.darwinDll.analyze
{
	import com.darwin.darwinDll.core.DllItem;
	
	import flash.utils.ByteArray;
	import flash.utils.Dictionary;

	/**
	 *  文件解析接口
	 * @author Roland
	 */	
	public interface IAnalyze
	{
		/**
		 *	解析数据
		 * @param byteArray 需要解析的二进制数据
		 * @param dllItem 加载项
		 * @param compFn 解析完成后的回调
		 * 
		 */
		function analyze(byteArray:ByteArray,dllItem:DllItem,compFn:Function):void;
		
		/**
		 *	获取解析完成的数据
		 * @param key 可以是serverId 或者 文件名
		 * @param subKey 二级键名,可以是subClass（可选）
		 * 
		 */
		function getData(key:String,subKey:String):*;
		
		/**
		 * 返回已解析数据列表 
		 * @return 
		 * 
		 */		
		function getDataList():Dictionary;
	}
}